/*
	NounEnhancementWeapon.cpp
	(c)2008 Palestar Inc, Jeff Everett
*/


#include "Debug/Assert.h"
#include "Constants.h"
#include "NounShip.h"
#include "NounPlanet.h"
#include "StructurePort.h"
#include "GameContext.h"
#include "GadgetJumpDrive.h"
#include "NounEnhancementSpecials.h"


// Specials ------------------------------------------------------------//
IMPLEMENT_FACTORY( NounEnhancement_FullJumpDrive, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_FullJumpDrive, NounEnhancement )
END_PROPERTY_LIST();

IMPLEMENT_FACTORY( NounEnhancement_HalfEnergy, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_HalfEnergy, NounEnhancement )
END_PROPERTY_LIST();

IMPLEMENT_FACTORY( NounEnhancement_LevelOneBuild, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_LevelOneBuild, NounEnhancement )
END_PROPERTY_LIST();

IMPLEMENT_FACTORY( NounEnhancement_MavericksUltimateBuild, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_MavericksUltimateBuild, NounEnhancement )
END_PROPERTY_LIST();

IMPLEMENT_FACTORY( NounEnhancement_TrailDeepPurple, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_TrailDeepPurple, NounEnhancement )
END_PROPERTY_LIST();

IMPLEMENT_FACTORY( NounEnhancement_TrailForestGreen, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_TrailForestGreen, NounEnhancement )
END_PROPERTY_LIST();

IMPLEMENT_FACTORY( NounEnhancement_TrailRedHot, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_TrailRedHot, NounEnhancement )
END_PROPERTY_LIST();

IMPLEMENT_FACTORY( NounEnhancement_TrailDarkBlue, NounEnhancement );
BEGIN_ABSTRACT_PROPERTY_LIST( NounEnhancement_TrailDarkBlue, NounEnhancement )
END_PROPERTY_LIST();




NounEnhancement_FullJumpDrive::NounEnhancement_FullJumpDrive()
{
	m_enhancements.push_back(new Enhancement(ES_JUMPDRIVE,MT_REFILL,100));
}

NounEnhancement_HalfEnergy::NounEnhancement_HalfEnergy()
{
	m_enhancements.push_back(new Enhancement(ES_SHIPENERGY,MT_REFILL,50));
}

NounEnhancement_LevelOneBuild::NounEnhancement_LevelOneBuild()
{
	m_enhancements.push_back(new Enhancement(ES_BUILD,MT_INCREASE,-5));
	m_enhancements.push_back(new Enhancement(ES_VELOCITY,MT_INCREASE,-5));
}

NounEnhancement_MavericksUltimateBuild::NounEnhancement_MavericksUltimateBuild()
{
	m_enhancements.push_back(new Enhancement(ES_BUILD,MT_INCREASE,-95));
}


NounEnhancement_TrailDeepPurple::NounEnhancement_TrailDeepPurple()
{
	m_enhancements.push_back(new Enhancement(ES_TRAIL,MT_APPLY,TRAIL_PURPLE));
	m_enhancements.push_back(new Enhancement(ES_VELOCITY,MT_INCREASE,60));
	m_enhancements.push_back(new Enhancement(ES_THRUST,MT_INCREASE,30));
	m_enhancements.push_back(new Enhancement(ES_TURNRATE,MT_INCREASE,40));
}

NounEnhancement_TrailForestGreen::NounEnhancement_TrailForestGreen()
{
	m_enhancements.push_back(new Enhancement(ES_TRAIL,MT_APPLY,TRAIL_GREEN));
	m_enhancements.push_back(new Enhancement(ES_VELOCITY,MT_INCREASE,60));
	m_enhancements.push_back(new Enhancement(ES_THRUST,MT_INCREASE,30));
	m_enhancements.push_back(new Enhancement(ES_TURNRATE,MT_INCREASE,40));
}
NounEnhancement_TrailRedHot::NounEnhancement_TrailRedHot()
{
	m_enhancements.push_back(new Enhancement(ES_TRAIL,MT_APPLY,TRAIL_RED));
	m_enhancements.push_back(new Enhancement(ES_VELOCITY,MT_INCREASE,60));
	m_enhancements.push_back(new Enhancement(ES_THRUST,MT_INCREASE,30));
	m_enhancements.push_back(new Enhancement(ES_TURNRATE,MT_INCREASE,40));
}
NounEnhancement_TrailDarkBlue::NounEnhancement_TrailDarkBlue()
{
	m_enhancements.push_back(new Enhancement(ES_TRAIL,MT_APPLY,TRAIL_BLUE));
	m_enhancements.push_back(new Enhancement(ES_VELOCITY,MT_INCREASE,60));
	m_enhancements.push_back(new Enhancement(ES_THRUST,MT_INCREASE,30));
	m_enhancements.push_back(new Enhancement(ES_TURNRATE,MT_INCREASE,40));
}
